﻿namespace Unity.Commons.Client
{
    // TODO Implementation or delete class UnityId 
    public sealed class UnityId : IUnityId
    {
        public const int Radix = 36;
        public const char Delimiter = ':';

        public const char SpecVersion = '1';

        public const int BASE36_RANDOM_PREFIX_LENGTH = 19;

        public static readonly int CSI_ID_ID_MAX_LENGTH = 8;
        public static readonly int BASE36_COUNTER_LENGTH = 5;

        public static readonly int BASE36_MAX_LENGTH
            = CSI_ID_ID_MAX_LENGTH + 2
            + BASE36_RANDOM_PREFIX_LENGTH
            + BASE36_COUNTER_LENGTH;

        public static readonly int CounterMinValue = 0;
        public static readonly int CounterMaxValue = 60466175;

        public static UnityId Compose(string csiId, char[] template, int counter, long version)
        {
            return null;
        }

        public char GetId()
        {
            return '0';
        }

        public long GetVersion()
        {
            return 0;
        }

        public byte[] ToBinaryArray()
        {
            return null;
        }
    }
}
